﻿// ActionScript file
/**
 * 切割图片，将图片分割成row*out个等大方格
 * 
 * 
 */
package org.nickro.utils.displayObjectUtils
{
        import flash.display.BitmapData;
        import flash.geom.ColorTransform;
        import flash.geom.Matrix;
        /**
         * 
         * @author Kevin J.Gao
         * 
         */        
        public class CutImage
        {
                /**
                 * 静态方法，切图
                 * @param image 源图片BitmapData实例
                 * @param row 待切行数
                 * @param out 待切列数
                 * @return 返回一个2维数组，存储切出来的BitmapData实例
                 * 
                 * 从左往右,上往下切
                 */                
                public static function cut(image:BitmapData,row:uint,out:uint):Array{
                        //验证参数
                        if(row<1||out<1||image==null){
                                var e:Error=new Error("Wrong parameters!");
                                throw(e);
                        }
                        var resultArr:Array=new Array();
                        //循环套嵌截图
                        for(var i:uint=0;i<row;i++){
                                resultArr[i]=new Array();
                                for(var j:uint=0;j<out;j++){
                                        var cutData:BitmapData=new BitmapData(image.width/row,image.height/out);
                                        cutData.draw(image,new Matrix(1,0,0,1,-image.width/row*i,-image.height/out*j));
                                        resultArr[i][j]=cutData;
                                }
                        }
                        return resultArr;
                }

        }
}